Microcontrollers function to replace mechanical and electromechanical components in a variety of applications and devices. Since they were first introduced approximately 30 years ago, microcontrollers have evolved to the point where they can be used for increasingly complex applications. Some microcontrollers in use today are also programmable, expanding the number of applications in which they can be used.
However, even though there are a large number of different types of microcontrollers available on the market with a seemingly wide range of applicability, it is still often difficult for a designer to find a microcontroller that is particularly suited for a particular application. Unique aspects of the intended application may make it difficult to find an optimum microcontroller, perhaps necessitating a compromise between the convenience of using an existing microcontroller design and less than optimum performance.
In those cases in which a suitable microcontroller is found, subsequent changes to the application and new requirements placed on the application will likely affect the choice of microcontroller. The designer thus again faces the challenge of finding a suitable microcontroller for the intended application.
To overcome these problems, microcontroller suppliers (specifically, Cypress MicroSystems in Bothell, Wash.) have started to offer standard parts that combine a microprocessor with several user-configurable “building blocks.” These building blocks may be assembled, configured and programmed to form many standard microprocessor peripherals, as well as to form unique peripherals as may be required by a specific application. Thus, a user can tailor a microcontroller to meet his or her specific requirements, in less time and at less cost than through other means. A microcontroller assembled from these building blocks is referred to herein as a programmable single-chip system. Additional information regarding such a microcontroller is provided in the co-pending, commonly-owned U.S. patent application Ser. No. 10/033,027, filed Oct. 22, 2001, by W. Snyder, and entitled “Programmable Microcontroller Architecture,” hereby incorporated by reference.
Unfortunately, conventional tools available for designing, configuring and programming these and other types of microcontrollers are confusing and difficult to use. The conventional tools are generally categorized as one of two types: a “wizard” type, and a “free form” type. Each of these types has its own set of problems.
In a wizard type of approach, the user is guided through the design process, from one step to the next step. Typically, the user is presented with a standardized display screen or window. The user fills in the required fields, then advances to the next screen when the required fields are completed.
One problem with the wizard type of approach is its rigidity. The user typically cannot advance to the next step without completing the existing step. Thus, for example, the effect of a decision made at one step cannot be seen on subsequent steps.
Another problem with the wizard type of approach is that the user can only move back and forth one step at a time. The user may make a decision at one step, proceed a number of steps forward in the process, then decide to review or change the decision made several steps earlier. The only way to return to the earlier step is to traverse through each of the windows for all of the intervening steps.
The free form type of approach is substantially less rigid than the wizard approach, but as a result it is confusing and difficult to use. In a free form approach, as a user designs and programs a microcontroller, choices of functions or tasks are presented as drop-down menus. Each function opens a different window, and multiple functions may need to be performed in order to complete even the most simple of tasks. Consequently, many windows are opened as the user attempts to design and program the microcontroller. The many displayed windows tend to be confusing because the user needs to keep track of which windows are used for which function. Also, the user needs to remember what information has been entered into each window, and what information is still required for each window. Furthermore, it is often difficult for the user to navigate between windows because some windows may be totally obscured by other windows. In addition, while the wizard approach helps a user that may not understand the design process and thus needs to be guided through that process in step-by-step fashion, the free form approach relies heavily on the familiarity of the user with the design process and so provides little or no guidance.
Thus, what is needed is a method or system that can help guide a user through a series of tasks in an orderly manner while facilitating movement between tasks. What is also needed is a method or system that can satisfy the above need and that can be used for the design of microcontrollers, such as microcontrollers of the design mentioned above. The present invention provides a novel solution to these needs.